@import 'lib';

.button, button, input[type=submit] {
    position: relative;
    padding: 6px 10px 7px;
    text-align: center;
    text-decoration: none;
    color: #fff;
    cursor: pointer;
    background: #5784BF;
    .gradient-two-color(#669BE1, #5784BF);
    text-shadow: 0 1px 0 rgba(0,0,0,.5);
    .border-radius(6px);
    .box-shadow(0 1px rgba(0, 0, 0, 0.1), 0 -2px rgba(0, 0, 0, 0.1) inset);
    border: 0;
}

button.good, .button.good, .button.add { // Green
    .gradient-two-color(@button-green-light, @button-green-dark,
                        @button-green-dark);
}

button.bad, .button.bad, .button.developer, .button.scary { // Red
    .gradient-two-color(@button-red-light, @button-red-dark, @button-red-dark);
}

.button {
    display: inline-block;

    &.prominent {
        padding: 8px 16px 12px;
        font-size: 16px;
        .box-shadow(0 3px rgba(0, 0, 0, 0.1), 0 -4px rgba(0, 0, 0, 0.1) inset);
    }
    &.add { // Green
        span {
            padding-left: 16px;
            background: url(../../img/impala/button-icons.png) no-repeat 0 3px;
        }
        &.prominent {
            span {
                padding-left: 24px;
                .sprite-pos(3, 64, 3px);
            }
            &.warning, &.caution {
                span {
                    .sprite-pos(5, 64, 3px);
                }
            }
            &.disabled, &.concealed, &.caution.concealed {
                span {
                    .sprite-pos(4, 64, 3px);
                }
            }
        }
        &.warning,
        &.caution {
            background: url(../../img/impala/warning-bg.png);
            color: #333;
            text-shadow: 0 -1px 0 rgba(255,255,255,.5);
            top: 0;

            span {
                .sprite-pos(2, 64, 3px);
            }
        }
        &.disabled,
        &.concealed,
        &.caution.concealed {
            top: 0;

            span {
                .sprite-pos(1, 64, 3px);
            }
        }
    }
    &.paypal {
        .gradient-two-color(#F8EAC4, #EEC546);
        color: rgb(51, 70, 118);
        text-shadow: 1px 1px #EDE8BF;
        font-style: italic;
        font-family: Verdana, @sans-stack;
        background-color: #EEC546;
        small {
            font-size: 0.7em;
        }
        em {
            color: rgb(90, 120, 168);
        }
        &.disabled em {
            color: #919497;
        }
    }
    &.contribute { // Blue
        &.prominent b {
            background: url(../../img/impala/button-icons.png) no-repeat;
            padding-left: 24px;
            margin-left: -4px;
            .sprite-pos(7, 64, 4px);
        }
    }
    &.developer, &.scary { // Red
        span {
            margin-left: -4px;
            padding-left: 24px;
            background: url(../../img/impala/button-icons.png) no-repeat;
            .sprite-pos(6, 64, 3px);
        }
    }
    &.watch:not(.watching) { // Orange
        background: #ea0;
        .gradient-two-color(#ea0, darken(#ea0, 10%));
    }
    &.platform {
        display: none;
    }
}
.html-rtl {
    .button {
        &.add {
            span {
                background-position: 93px 3px;
                padding: 0 16px 0 0;
            }
            &.prominent {
                &.disabled, &.concealed, &.caution.concealed {
                    span {
                        .sprite-pos-right(4, 64, 3px);
                    }
                }
            }
            &.warning,
            &.caution {
                span {
                    .sprite-pos-right(2, 64, 3px);
                }
            }
            &.disabled,
            &.concealed,
            &.caution.concealed {
                span {
                    .sprite-pos-right(1, 64, 3px);
                }
            }
        }
        &.contribute.prominent b {
            margin: 0 -4px 0 0;
            padding: 0 24px 0 4px;
            .sprite-pos-right(7, 64, 4px);
        }
        &.developer, &.scary {
            span {
                margin: 0 -4px 0 0;
                padding: 0 24px 0 0;
            }
        }
    }
}
.button:hover,
.button:focus,
.button:active,
.button.selected {
    text-decoration: none;
    .box-shadow(0 1px rgba(0, 0, 0, 0.1), 0 -2px rgba(0, 0, 0, 0.1) inset, 0 0 100px rgba(255, 255, 255, 0.2) inset);
}

// Show install button for Android if not concealed.
body.android.addon-details .button.platform.android:not(.concealed) {
    display: inline-block;
}

.install.clickHijack a * {
    pointer-events: none;
}

.button:active,
.button.selected {
    .box-shadow(0 0px rgba(0, 0, 0, 0.1), 0 -2px rgba(0, 0, 0, 0.1) inset, 0 0 100px rgba(255, 255, 255, 0.2) inset);
}

.button:active,
.button.selected,
.button.prominent:active,
.button.prominent.selected {
    top: 2px;

    &:before {
        /* `top: 2px` creates a 2px "deadzone" making the link unclickable.
            This effectively fills the deadzone. See bug 710284. */
        content: "";
        display: block;
        height: 2px;
        position: absolute;
        top: -2px;
        left: 0;
        width: 100%;
    }
}

.button.prominent:hover,
.button.prominent:focus,
.button.prominent:active,
.button.prominent.selected {
    .box-shadow(0 3px rgba(0, 0, 0, 0.1), 0 -4px rgba(0, 0, 0, 0.1) inset, 0 0 100px rgba(255, 255, 255, 0.2) inset);
}

.button.prominent:active,
.button.prominent.selected {
    .box-shadow(0 1px rgba(0, 0, 0, 0.1), 0 -4px rgba(0, 0, 0, 0.1) inset, 0 0 100px rgba(255, 255, 255, 0.2) inset);
}

.install-shell {
    .install {
        display: inline-block;
    }
    .warning {
        font-size: 12px;
    }
    .extra {
        margin-top: 8px;
    }
    .notavail,
    .notsupported {
        color: @error-red;
        display: block;
        font-size: 11px;
        margin: 0 0 4px;
    }
    .acr-incompat,
    .notsupported {
        color: @note-gray;
    }
    .notsupported span:before {
        content: "\0B7";
        padding: 0 4px;
    }
}

.listing .notsupported span {
    display: block;
    margin-top: 4px;

    &:before {
        content: "";
    }
}

.versions .notsupported {
    display: none;
}

.listing-grid {
    .hovercard {
        .install-button {
            margin: 0;
        }
        .button.disabled,
        .button.concealed {
            display: none !important;
        }
        .addon-summary {
            line-height: 16px;
        }
    }
}

.mac .button.mac,
.linux .button.linux,
.other .button.bsd,
.other .button.solaris,
.windows .button.windows {
    display: inherit;
}
.thunderbird .listing-grid .install-shell {
    display: none;
}

button[disabled],
.button.disabled,
.button.concealed,
.button.caution.concealed {
    background: #c1c5ca;
    .gradient-two-color(#d1d4d7, #c1c5ca);
    color: #919497;
    .box-shadow(0 3px rgba(0, 0, 0, 0.05), 0 -4px rgba(0, 0, 0, 0.05) inset);
    text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
button[disabled],
.button.disabled,
.button.concealed,
.button.caution.concealed {
    cursor: default;
    pointer-events: none;
}
.button.CTA {
    min-width: 80px;
    padding: 25px;
    border: 0;
    border-radius: 6px;
    border-radius: .25em;
    box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), inset 0 -1px 0 0 rgba(0, 0, 0, 0.3);
    cursor: pointer;
    color: #fff !important;
    background-color: #43a6e2 !important;
    background-color: #277ac1 !important;
    background-color: #81bc2e !important;
    background-color: #659324 !important;
    background-image: -webkit-linear-gradient(top, #43a6e2, #277ac1) !important;
    background-image: linear-gradient(to bottom, #43a6e2, #277ac1) !important;
    background-image: -webkit-linear-gradient(top, #81bc2e, #659324) !important;
    background-image: linear-gradient(to bottom, #81bc2e, #659324) !important;
    background-repeat: repeat-x !important;
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#81bc2e', endColorstr='#659324', GradientType=0)";
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#43a6e2', endColorstr='#277ac1', GradientType=0)";
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
    font-family: 'Open Sans', X-LocaleSpecific, sans-serif;
    -webkit-transition: all linear .25s;
    transition: all linear .25s;
    text-align: center;
    font-size: 25px;
    font-family: "Open Sans", X-LocaleSpecific, sans-serif;
    font-weight: normal;

    /* IE7 and Below */
    *display: inline;
    *zoom: 1;
}
